home *** CD-ROM | disk | FTP | other *** search
- /* Script Rexx
- Make Star
- */
-
- call addlib("rexxmathlib.library", 5, -30, 0)
-
- options results
- parse ARG Port x1 y1 r b
-
- ADDRESS COMMAND
- s0=3
- s1=0
- Ray=0
- if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Sun') THEN DO
- IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Sun', "R") then DO
- s0 = READLN('lfile')
- s1 = READLN('lfile')
- Ray = READLN('lfile')
- CALL CLOSE('lfile')
- END
- END
-
- Pi=3.1415926/180
- r2=r/3
-
- ADDRESS value Port
- pp_DialogInit 250 125 "*Sun*" 4
- pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 s0
- pp_Cycle 1 110 25 100 16 "Option" 1 "Filled|Unfilled" s1
- pp_Integer 2 110 50 50 16 "Sun*Radius" 1 trunc(r2)
- pp_Cycle 3 110 70 100 16 "Ray*Lenght" 1 "Random|Regular" Ray
- pp_Dialog
- rc=result
- if rc=0 then
- do
- EXIT
- end
-
- pp_GetDialog 0
- s0=result
-
- pp_GetDialog 1
- s1=result
-
- pp_GetDialog 2
- r2=result
-
- pp_GetDialog 3
- Ray=result
-
- CALL SavePrefs('Sun',s0,s1,Ray)
- ADDRESS value Port
-
- a=360/s0
- a2=a/2
-
- pp_UpdateUndo
-
- DO i=0 To 359 by a
- if ray=0 then
- do
- r3=random(trunc(r2),r,time('S'))+5
- end
- else
- do
- r3=r
- end
-
- x = Sin(i*Pi)*r3+x1
- y = Cos(i*Pi)*r3+y1
-
- ii=i+a2
- x2 = Sin(ii*Pi)*r2+x1
- y2 = Cos(ii*Pi)*r2+y1
-
- ii=i-a2
- x3 = Sin(ii*Pi)*r2+x1
- y3 = Cos(ii*Pi)*r2+y1
-
- if s1=0 then do
- pp_SplineF trunc(x3+0.5) trunc(y3+0.5) trunc(x2+0.5) trunc(y2+0.5) trunc(x+0.5) trunc(y+0.5)
- end
- else do
- pp_Spline trunc(x3) trunc(y3) trunc(x2) trunc(y2) trunc(x) trunc(y)
- end
-
-
- END
-
- if s1=0 then do
- pp_CircleF x1 y1 trunc(r2+0.5)+2
- end
-
- EXIT
-
-
- SavePrefs: PROCEDURE
-
- Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
-
- if EXISTS(Prefname) THEN DO
- ADDRESS COMMAND
- 'delete >nil: '||Prefname
- END
-
- IF OPEN('pfile',PrefName,'W') THEN DO
-
- do i=2 to ARG()
- CALL WRITELN('pfile',ARG(i))
- end
-
- CALL CLOSE('pfile')
-
- RETURN
-
-
-
-